package com.ruoyi.platform.service;

import java.util.List;
import com.ruoyi.platform.domain.MarketingActivity;

/**
 * 营销活动Service接口
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public interface IMarketingActivityService 
{
    /**
     * 查询营销活动
     * 
     * @param activityId 营销活动主键
     * @return 营销活动
     */
    public MarketingActivity selectMarketingActivityByActivityId(String activityId);

    /**
     * 查询营销活动列表
     * 
     * @param marketingActivity 营销活动
     * @return 营销活动集合
     */
    public List<MarketingActivity> selectMarketingActivityList(MarketingActivity marketingActivity);

    /**
     * 新增营销活动
     * 
     * @param marketingActivity 营销活动
     * @return 结果
     */
    public int insertMarketingActivity(MarketingActivity marketingActivity);

    /**
     * 修改营销活动
     * 
     * @param marketingActivity 营销活动
     * @return 结果
     */
    public int updateMarketingActivity(MarketingActivity marketingActivity);

    /**
     * 批量删除营销活动
     * 
     * @param activityIds 需要删除的营销活动主键集合
     * @return 结果
     */
    public int deleteMarketingActivityByActivityIds(String[] activityIds);

    /**
     * 删除营销活动信息
     * 
     * @param activityId 营销活动主键
     * @return 结果
     */
    public int deleteMarketingActivityByActivityId(String activityId);

    /**
     * 根据商家ID查询营销活动列表
     * 
     * @param merchantId 商家ID
     * @return 营销活动集合
     */
    public List<MarketingActivity> selectMarketingActivityByMerchantId(String merchantId);

    /**
     * 根据审核状态查询营销活动列表
     * 
     * @param auditStatus 审核状态
     * @return 营销活动集合
     */
    public List<MarketingActivity> selectMarketingActivityByAuditStatus(Integer auditStatus);

    /**
     * 根据商家ID和审核状态查询营销活动列表
     * 
     * @param merchantId 商家ID
     * @param auditStatus 审核状态
     * @return 营销活动集合
     */
    public List<MarketingActivity> selectMarketingActivityByMerchantIdAndAuditStatus(String merchantId, Integer auditStatus);

    /**
     * 审核通过营销活动
     * 
     * @param activityId 活动ID
     * @param auditRemark 审核备注
     * @return 结果
     */
    public int approveMarketingActivity(String activityId, String auditRemark);

    /**
     * 审核拒绝营销活动
     * 
     * @param activityId 活动ID
     * @param rejectReason 拒绝原因
     * @return 结果
     */
    public int rejectMarketingActivity(String activityId, String rejectReason);

    /**
     * 检查活动编码是否唯一
     * 
     * @param activityCode 活动编码
     * @return 结果
     */
    public String checkActivityCodeUnique(String activityCode);

    /**
     * 导入营销活动数据
     * 
     * @param activityList 营销活动数据列表
     * @param isUpdateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 操作用户
     * @return 结果
     */
    public String importMarketingActivity(List<MarketingActivity> activityList, Boolean isUpdateSupport, String operName);
}